package cn.cailin.day06.demo14Lambda;
/*
    Lambda表达式有参数有返回值的练习
    需求：
        给定一个计算机Calculator接口，内含抽象方法calc可以将俩个int数字相加得到和值
        使用Lambda的标准格式调用invokeCalc方法完成120和130的相加计算
 */
public class Demo01Calculator {
    public static void main(String[] args) {
        //调用invokeCalculator方法，方法的参数是一个接口，可以使用匿名内部类
        invokeCalc(10, 10, new Calculator() {
            @Override
            public int calc(int a, int b) {
                return a+b;
            }
        });

        //使用Lambda表达式简化代码
        invokeCalc(10,20,(a,b)->{return a+b;});

        //简化Lambda表达式
        invokeCalc(10,30,((a, b) -> a+b));
    }


    /*
        定义一个方法
        参数传递俩个int类型的整数
        参数传递Calculator接口
        方法内部调用Calculator方法中的方法calc计算俩个整数的和
     */
    public  static void invokeCalc(int a,int b,Calculator c){
        int sum=c.calc(a,b);
        System.out.println(sum);
    }
}
